fix(steamcmd): add libtinfo.so.5 symlink fix for readline warning#4899
Merged
fix(steamcmd): add libtinfo.so.5 symlink fix for readline warning#4899
Conversation
On distros shipping libtinfo.so.6 but not libtinfo.so.5 (Ubuntu 22.04+, Debian 12+), SteamCMD prints: WARNING: Failed to load 32-bit libtinfo.so.5 or libncurses.so.5. Please install (lib32tinfo5 / ncurses-libs.i686 / equivalent) to enable readline. lib32tinfo5 does not exist on Ubuntu 24.04. Creating a user-space symlink inside the steamcmd directory resolves the warning without requiring root or a missing package.
d0ca2c5 to
c20b4fa
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a SteamCMD runtime fix for modern distros missing libtinfo.so.5, and introduces TF2 Classified (tf2c) server support which relies on downloading a base appid into a separate support directory.
Changes:
- Add a user-space
libtinfo.so.5 -> libtinfo.so.6symlink workaround infix_steamcmd.sh. - Add
baseappiddownload support in the SteamCMD download flow (download base app intosupportdirbeforeappidintoserverfiles). - Register new
tf2cserver (server list entry + default config + config install handling).
Reviewed changes
Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| lgsm/modules/install_config.sh | Adds config discovery/installation handling for tf2c. |
| lgsm/modules/fix_steamcmd.sh | Creates a libtinfo.so.5 symlink to suppress SteamCMD readline warnings on newer distros. |
| lgsm/modules/core_dl.sh | Implements baseappid download (to supportdir) before downloading appid. |
| lgsm/data/serverlist.csv | Registers tf2c in the supported server list. |
| lgsm/config-default/config-lgsm/tf2cserver/_default.cfg | Adds default LinuxGSM config for the new tf2cserver. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8d80501 to
fdb8625
Compare
- Iterate over all candidate steamcmd dirs (HOME/.steam/steamcmd, steamcmddir, HOME/.local/share/Steam/steamcmd) matching the pattern used for steamclient.so fixes elsewhere in the module - Replace '! -f && ! -L' guard with '! -e' so broken/dangling symlinks are also repaired rather than silently skipped - Add mkdir -p before ln in case the directory does not exist yet - Capture exitcode=$? after ln so fn_fix_msg_end reports failures
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
On distros that ship
libtinfo.so.6but notlibtinfo.so.5(Ubuntu 22.04+, Debian 12+), SteamCMD prints the following warning at every run:lib32tinfo5does not exist on Ubuntu 22.04+ / Debian 12+ — the package was removed when ncurses transitioned tolibtinfo6. There is no apt package to install to resolve the warning on modern distros.In
fix_steamcmd.sh, a user-space symlinklibtinfo.so.5 -> libtinfo.so.6is created inside all known SteamCMD directories when the.so.5file is absent or a broken symlink. This requires no root access and resolves the warning for all SteamCMD-based game servers.Fixes #212
Fixes #3137
Type of change
Checklist
PR will not be merged until all steps are complete.
developbranch as its base.Documentation
No documentation update required — this is an internal runtime fix with no user-facing configuration changes.
Thank you for your Pull Request!